package com.ssy.lingxi.member.merchant.service.feign;

import com.ssy.lingxi.common.response.Wrapper;

/**
 * 调用短信服务Feign接口
 * @author 万宁
 * @version 2.0.0
 * @date 2020-09-09
 */
public interface ISmsFeignService {

    /**
     * 发送会员注册时的短信验证码
     * @param countryCode 国家代码
     * @param phone 手机号码
     * @param smsCode 短信验证码
     * @param expireMinutes 验证码有效时间（分钟）
     * @return 发送结果
     */
    Wrapper<Void> sendRegisterSms(String countryCode, String phone, String smsCode, Integer expireMinutes);

    /**
     * 发送通过手机号重设密码时的短信验证码
     * @param countryCode 国家代码
     * @param phone 手机号码
     * @param smsCode 短信验证码
     * @param expireMinutes 验证码有效时间（分钟）
     * @return 发送结果
     */
    Wrapper<Void> sendResetPasswordSms(String countryCode, String phone, String smsCode, Integer expireMinutes);

    /**
     * 发送更改密码短信
     * @param countryCode 国家代码
     * @param phone 手机号码
     * @param smsCode 短信验证码
     * @param expireMinutes 短信有效时间（分钟）
     * @return 发送结果
     */
    Wrapper<Void> sendChangePasswordSms(String countryCode, String phone, String smsCode, Integer expireMinutes);

    /**
     * 发送更改邮箱短信
     * @param countryCode 国家代码
     * @param phone 手机号码
     * @param smsCode 短信验证码
     * @param expireMinutes 短信有效时间（分钟）
     * @return 发送结果
     */
    Wrapper<Void> sendChangeEmailSms(String countryCode, String phone, String smsCode, Integer expireMinutes);

    /**
     * 发送更改手机号码短信
     * @param countryCode 国家代码
     * @param phone 手机号码
     * @param smsCode 短信验证码
     * @param expireMinutes 短信有效时间（分钟）
     * @return 发送结果
     */
    Wrapper<Void> sendChangePhoneSms(String countryCode, String phone, String smsCode, Integer expireMinutes);

    /**
     * 发送更改支付密码短信
     * @param countryCode 国家代码
     * @param phone 手机号码
     * @param smsCode 短信验证码
     * @param expireMinutes 短信有效时间（分钟）
     * @return 发送结果
     */
    Wrapper<Void> sendChangePayPasswordSms(String countryCode, String phone, String smsCode, Integer expireMinutes);

    /**
     * 发送App手机号登录的短信
     * @param countryCode 国家代码
     * @param phone 手机号码
     * @param smsCode 短信验证码
     * @param expireMinutes 短信有效时间（分钟）
     * @return 发送结果
     */
    Wrapper<Void> sendMobilePhoneLoginSms(String countryCode, String phone, String smsCode, Integer expireMinutes);
}
